import React, { useState, useEffect } from 'react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Textarea } from '@/components/ui/textarea';
import { Book, Lightbulb, RefreshCw, AlertTriangle } from 'lucide-react';
import { InvokeLLM } from "@/api/integrations";

export default function ProjectOverviewTab({ scheme, crossingPoint, project }) {
  const [projectOverview, setProjectOverview] = useState('');
  const [isGenerating, setIsGenerating] = useState(false);

  const generateProjectOverview = async () => {
    if (!crossingPoint || !project) {
        setProjectOverview("缺少项目或跨越点信息，无法生成工程概况。");
        return;
    }
    
    setIsGenerating(true);
    setProjectOverview("正在生成工程概况，请稍候...");
    try {
      const prompt = `作为电力工程专家，请根据以下信息，为名为《${scheme.name}》的施工方案生成一段专业的工程概况。请直接输出概况内容，不需要重复标题。

项目基本信息：
- 项目名称：${project.projectName || '未知项目'}
- 电压等级：${project.voltageLevel || '未知'}
- 项目概况：${project.description || '无'}

跨越点信息：
- 跨越点名称：${crossingPoint.name || '未知跨越点'}
- 跨越对象：${crossingPoint.crossingObject || '未知'}
- 跨越类型：${crossingPoint.crossingType || '未知'}
- 档距：${crossingPoint.spanLength || 'N/A'}米
- 难度等级：${crossingPoint.difficultyLevel || 'N/A'}

施工方案信息：
- 施工方法：${scheme.constructionMethod || '未知'}
- 主要工作内容：${scheme.scopeOfWork || '无'}

请整合以上信息，生成一段专业的工程概况描述，包含工程背景、技术特点、施工难点等内容。`;

      const response = await InvokeLLM({
        prompt: prompt,
        addContextFromInternet: false
      });
      setProjectOverview(response);
    } catch (error) {
      console.error("生成工程概况失败:", error);
      setProjectOverview("生成工程概况失败，请检查网络连接或稍后重试。");
    } finally {
      setIsGenerating(false);
    }
  };
  
  useEffect(() => {
    generateProjectOverview();
  }, [scheme, crossingPoint, project]);

  return (
    <Card>
      <CardHeader>
        <CardTitle className="flex items-center justify-between">
          <span className="flex items-center gap-2">
            <Book className="w-5 h-5 text-blue-600" />
            工程概况
          </span>
          <Button
            onClick={generateProjectOverview}
            disabled={isGenerating || !crossingPoint || !project}
            variant="outline"
            size="sm"
          >
            {isGenerating ? (
              <RefreshCw className="w-4 h-4 mr-2 animate-spin" />
            ) : (
              <RefreshCw className="w-4 h-4 mr-2" />
            )}
            重新生成
          </Button>
        </CardTitle>
      </CardHeader>
      <CardContent>
        <div className="p-4 bg-yellow-50 border border-yellow-200 rounded-md mb-4 flex items-start gap-3">
          <AlertTriangle className="w-5 h-5 text-yellow-600 mt-1 flex-shrink-0" />
          <p className="text-sm text-yellow-800">
            此内容根据项目和跨越点信息动态生成，仅供参考，不保存到方案中。最终文档内容以生成Word时为准。
          </p>
        </div>
        <Textarea
          value={projectOverview}
          placeholder="正在根据项目信息生成工程概况..."
          rows={18}
          readOnly
          className="bg-gray-50 focus:ring-0"
        />
      </CardContent>
    </Card>
  );
}